Сообщение от Lutsk
|
Уже весь инет перерыл так и не нашел ответа.
|
А зачем рыть весь интернет, когда достаточно посмотреть документацию!
https://developers.google.com/recaptcha/docs/verify
Сообщение от Lutsk
|
Уже весь инет перерыл так и не нашел ответа.
|
Всё таки не весь!
Сообщение от Lutsk
|
Уже весь инет перерыл так и не нашел ответа.
|
А на английском языке смотрели? А на арабском? А на мандарине? Нет? Ну тогда вы почти и не начинали рыть!
Каждый reCAPTCHA токен верен только на протяжении 2-ух минут, и может быть проверен один раз, что позволяет избежать атак. Поэтому токен следует генерировать перед отправкой формы! Если вам нужен новый токен, вы можете сгенерировать новый токен.
Т. е. вам надо при отправке формы получить токен, записать в форму, отправить её на сервер. Там произвести соответствующий запрос для проверки и в зависимости от результата произвести дальнейшую обработку данных формы.
Ваш пример... Публичный ключ замените на свой...
(function($) {
var grecaptcha = window.grecaptcha;
if (!grecaptcha) return alert("reCaptha not found");
$(function() {
$("body").on("submit", 'form[name="form_ajax"]', function() {
var form = $(this),
messages = $(form).find(".messages");
$(messages).hide();
$(messages)
.find(".message")
.hide()
.html("");
grecaptcha.ready(function() {
grecaptcha
.execute("6Levz6wUAAAAAJuGP_hRQKzfXUzwt6Llbk1-vL1y", {
action: "form"
})
.then(function(token) {
var tokenField = $("input[name=token]");
if (tokenField.length === 0) {
form.append('<input type="hidden" name="token">');
}
$("input[name=token]").val(token);
})
.then(function() {
$.post(
form.attr("action"),
form.serializeArray(),
function(response) {
if (response.success) {
$(messages)
.find(".message.success")
.html(response.messages.success.join("<br />"))
.show();
} else {
$(messages).show();
$(messages)
.find(".message.error")
.html(response.message.replace(/\n/g, "<br />"))
.show();
}
$(messages).show();
},
"json"
).fail(function(response) {
$(messages)
.find(".message.error")
.html(response.status + ":" + response.statusText)
.show();
$(messages).show();
});
});
});
return false;
});
});
})(jQuery);